<TagAttribute("ui_widget_definition","DeLa","????","????",1,1004)>
Public Class UI_WIDGET_DEFINITION_TAG
Inherits HaloTag
Public Const Extension as String = "ui_widget_definition"
Public Const FourCC as String = "DeLa"
Public Const ParentFourCC as String = "????"
Public Const GrandParentFourCC as String = "????"
Public Const [Version] as Short = 1
Public Const HeaderLength as Integer = 1004

''' <summary>
''' 
''' </summary>
<TagField("widget type", 1, 17)>
Public widget_type as Short

''' <summary>
''' 
''' </summary>
<TagField("controller index", 1, 17)>
Public controller_index as Short

''' <summary>
''' 
''' </summary>
<TagField("name", 32, 8)>
Public name as String

''' <summary>
''' 
''' </summary>
<TagField("bounds", 4, 26)>
Public bounds as Short()

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags as Integer

''' <summary>
''' <=0 to never auto-close
''' </summary>
<TagField("milliseconds to auto close", 1, 4)>
Public milliseconds_to_auto_close as Integer

''' <summary>
''' <= 0 for immediate close
''' </summary>
<TagField("milliseconds auto close fade time", 1, 4)>
Public milliseconds_auto_close_fade_time as Integer

''' <summary>
''' 
''' </summary>
<TagField("background bitmap", 16, 10)>
Public background_bitmap as New TAG_REFERENCE

''' <summary>
''' These functions use current game data to modify the appearance of
''' the widget. These functions are called every time the widget is
''' rendered.
''' </summary>
#Region "game data input fxns"

''' <summary>
''' game_data_input_references_block
''' </summary>
<TagField("game data inputs", 36, 11)>
Public game_data_inputs as List(Of GAME_DATA_INPUTS_BLOCK)

''' <summary>
''' These allow actions to be tied to certain ui events.
''' The event handler is run every time the widget receives the specified event.
''' By default, the 'back' and 'B' buttons will take you to the previous screen.
''' </summary>
#End Region
#Region "event handlers"

''' <summary>
''' event_handler_references_block
''' </summary>
<TagField("event handlers", 72, 11)>
Public event_handlers_1 as List(Of EVENT_HANDLERS_1_BLOCK)

''' <summary>
''' These are used to run a search-and-replace on th
''' </summary>
#End Region
#Region "search-and-replace"

''' <summary>
''' search_and_replace_reference_block
''' </summary>
<TagField("search and replace functions", 34, 11)>
Public search_and_replace_functions as List(Of SEARCH_AND_REPLACE_FUNCTIONS_BLOCK)

''' <summary>
''' 
''' </summary>
<TagField("", 128, -1)>
Public padding as Byte()

''' <summary>
''' parameters specific to text box widgets
''' NOTE: the string list tag can also be used for lists whose items come from a string list tag
''' </summary>
#End Region
#Region "text box"

''' <summary>
''' 
''' </summary>
<TagField("text label unicode strings list", 16, 10)>
Public text_label_unicode_strings_list as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("text font", 16, 10)>
Public text_font as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("text color", 4, 3)>
Public text_color as Single()

''' <summary>
''' 
''' </summary>
<TagField("justification", 1, 17)>
Public justification as Short

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags_1 as Integer

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding_1 as Byte()

''' <summary>
''' blah blah blah
''' </summary>
#End Region
#Region "more text box parameters"

''' <summary>
''' default is 0
''' </summary>
<TagField("string list index", 1, 23)>
Public string_list_index as Short

''' <summary>
''' offsets text position in its bounding area
''' </summary>
<TagField("horiz offset", 1, 23)>
Public horiz_offset as Short

''' <summary>
''' offsets the text position in its bounding area
''' </summary>
<TagField("vert offset", 1, 23)>
Public vert_offset as Short

''' <summary>
''' 
''' </summary>
<TagField("", 26, -1)>
Public padding_2 as Byte()

''' <summary>
''' These options affect list items for both spinner and column lists
''' * child widgets are 
''' </summary>
#End Region
#Region "list items"

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_3 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags_2 as Integer

''' <summary>
''' parameters specific to spinner list widgets
''' child widgets are the list items
''' </summary>
#End Region
#Region "spinner list"

''' <summary>
''' 
''' </summary>
<TagField("list header bitmap", 16, 10)>
Public list_header_bitmap as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("list footer bitmap", 16, 10)>
Public list_footer_bitmap as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("header bounds", 4, 26)>
Public header_bounds as Short()

''' <summary>
''' 
''' </summary>
<TagField("footer bounds", 4, 26)>
Public footer_bounds as Short()

''' <summary>
''' 
''' </summary>
<TagField("", 32, -1)>
Public padding_4 as Byte()

''' <summary>
''' parameters specific to column list widgets
''' child widgets are the list items
''' </summary>
#End Region
#Region "column list"

''' <summary>
''' 
''' </summary>
<TagField("extended description widget", 16, 10)>
Public extended_description_widget as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 32, -1)>
Public padding_5 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 256, -1)>
Public padding_6 as Byte()

''' <summary>
''' use this to attach widgets that are loaded only
''' if some internal criteria is met while processing a widget event
''' </summary>
#End Region
#Region "conditional widgets"

''' <summary>
''' conditional_widget_reference_block
''' </summary>
<TagField("conditional widgets", 80, 11)>
Public conditional_widgets_1 as List(Of CONDITIONAL_WIDGETS_1_BLOCK)

''' <summary>
''' 
''' </summary>
<TagField("", 128, -1)>
Public padding_7 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 128, -1)>
Public padding_8 as Byte()

''' <summary>
''' use this to attach widgets that are loaded as 'children'
''' of this widget (children are always loaded as part of the parent widget)
''' </summary>
#End Region
#Region "child widgets"

''' <summary>
''' child_widget_reference_block
''' </summary>
<TagField("child widgets", 80, 11)>
Public child_widgets_1 as List(Of CHILD_WIDGETS_1_BLOCK)
#End Region
Public Class GAME_DATA_INPUTS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("function", 1, 17)>
Public _function as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 32, -1)>
Public padding_1 as Byte()

End Class
Public Class EVENT_HANDLERS_1_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags as Integer

''' <summary>
''' 
''' </summary>
<TagField("event type", 1, 17)>
Public event_type as Short

''' <summary>
''' 
''' </summary>
<TagField("function", 1, 17)>
Public _function as Short

''' <summary>
''' 
''' </summary>
<TagField("widget tag", 16, 10)>
Public widget_tag as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("sound effect", 16, 10)>
Public sound_effect as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("script", 32, 8)>
Public script as String

End Class
Public Class SEARCH_AND_REPLACE_FUNCTIONS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("search string", 32, 8)>
Public search_string as String

''' <summary>
''' 
''' </summary>
<TagField("replace function", 1, 17)>
Public replace_function as Short

End Class
Public Class CONDITIONAL_WIDGETS_1_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("widget tag", 16, 10)>
Public widget_tag as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("name (unused)", 32, 8)>
Public name as String

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags as Integer

''' <summary>
''' 
''' </summary>
<TagField("custom controller index (unused)", 1, 23)>
Public custom_controller_index as Short

''' <summary>
''' 
''' </summary>
<TagField("", 26, -1)>
Public padding as Byte()

End Class
Public Class CHILD_WIDGETS_1_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("widget tag", 16, 10)>
Public widget_tag as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("name (unused)", 32, 8)>
Public name as String

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags as Integer

''' <summary>
''' 
''' </summary>
<TagField("custom controller index", 1, 23)>
Public custom_controller_index as Short

''' <summary>
''' 
''' </summary>
<TagField("vertical offset", 1, 23)>
Public vertical_offset as Short

''' <summary>
''' 
''' </summary>
<TagField("horizontal offset", 1, 23)>
Public horizontal_offset as Short

''' <summary>
''' 
''' </summary>
<TagField("", 22, -1)>
Public padding as Byte()

End Class

End Class
